package com.jsmile.cloud.msgcenter.api.req;

import java.util.List;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import com.jsmile.cloud.msgcenter.api.enums.ActionTypeEnum;
import com.jsmile.cloud.msgcenter.api.enums.MsgTypeEnum;
import com.jsmile.cloud.msgcenter.api.enums.SendTypeEnum;
import com.jsmile.cloud.msgcenter.api.enums.TargetTypeEnum;
import com.jsmile.mall.api.to.BaseUpdateTo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @author 龚亮
 * @version 1.0
 * @desc 为了薪资破万，还是睡一会儿吧...!
 * @date 2019年04月01日 04:45:35
 */
@Data
@ApiModel

public class ReqNotifyCreate extends BaseUpdateTo implements java.io.Serializable {

    @ApiModelProperty(value = "通知标题")
    private String notifyTitle;
    @ApiModelProperty(value = "消息的内容")
    private String notifyContent;
    @ApiModelProperty(value = "消息的跳转url")
    private String notifyUrl;
    @ApiModelProperty(value = "消息的类型 01业务消息 02系统公告 03升级公告")
    private MsgTypeEnum msgTypeEnum;
    @ApiModelProperty(value = "目标的ID(比如文章ID)")
    @NotNull
    private Long targetId;
    @ApiModelProperty(value = "目标的类型(如工单order,文章post)")
    private TargetTypeEnum targetTypeEnum;
    @ApiModelProperty(value = "动作类型(评论:comment,喜欢:like,通知:notify)")
    private ActionTypeEnum actionTypeEnum = ActionTypeEnum.NOTIFY;
    @ApiModelProperty(value = "发送者ID")
    private Integer senderId;
    @ApiModelProperty(value = "发送者类型(普通用户user,管理员admin)")
    private SendTypeEnum sendTypeEnum = SendTypeEnum.USER;
    @ApiModelProperty(value = "remark")
    private String remark;

    @ApiModelProperty(value = "接收消息的用户集合")
    @NotNull(message = "消息接收者不能为空")
    @Size(min = 1, max = 500)
    private List<Long> getters;
}
